ns এবং require, use এর মাধ্যমে Namespace তৈরি

Computer Programming - ক্লোজার (Clojure) Namespaces এবং Scope (Namespaces and Scope in Clojure) |
192
192

ns, require, এবং use এর মাধ্যমে Namespace তৈরি

ক্লোজার (Clojure) এ namespace একটি অত্যন্ত গুরুত্বপূর্ণ ধারণা, যেটি কোডের সংগঠন এবং মডুলারিটি সহজতর করতে সাহায্য করে। একটি namespace হল কোডের একটি logical নাম, যা কোডের বিভিন্ন অংশকে একত্রিত করে এবং তাদের মধ্যে সম্পর্ক তৈরি করে। ক্লোজারে ns, require, এবং use এর মাধ্যমে namespace তৈরি এবং ব্যবহারের প্রক্রিয়া অনেক সহজ এবং কার্যকরী।


১. ns এর মাধ্যমে Namespace তৈরি

ns (namespace) একটি ম্যাক্রো যা একটি নতুন namespace তৈরি করতে ব্যবহৃত হয়। এটি সাধারণত কোডের শুরুর দিকে ব্যবহার করা হয় এবং এতে namespace এর নাম এবং অন্যান্য কনফিগারেশন উল্লেখ করা হয়।

Syntax:

(ns namespace-name
  (:require [other-namespace :as alias]))

উদাহরণ: ns ব্যবহার করে Namespace তৈরি

(ns my-app.core
  (:require [clojure.string :as str]))

(defn greeting [name]
  (str "Hello, " name "!"))

এখানে, my-app.core namespace তৈরি করা হয়েছে এবং clojure.string namespace কে str নামে অ্যালিয়াস দিয়ে require করা হয়েছে।


২. require এর মাধ্যমে Namespace Import

require হল একটি কনফিগারেশন ম্যাক্রো যা অন্য namespace থেকে ফাংশন বা মান ইনক্লুড করতে ব্যবহৃত হয়। require নামস্পেস বা লাইব্রেরি কল করার সময় তার কার্যকরী অংশকে ব্যবহারযোগ্য করে তোলে।

Syntax:

(ns your-namespace
  (:require [namespace-to-import :as alias]))
  • namespace-to-import: যে namespace বা লাইব্রেরি থেকে ফাংশন এবং মানগুলো আনা হবে।
  • alias: ইচ্ছেমতো নাম যা আপনি ইনক্লুড করা namespace এর জন্য ব্যবহার করতে চান।

উদাহরণ: require এর মাধ্যমে Namespace Import

(ns my-app.core
  (:require [clojure.string :as str]))

(defn shout [text]
  (str/upper-case text))

এখানে clojure.string namespace কে str নামে অ্যালিয়াস দেওয়া হয়েছে এবং upper-case ফাংশনটি ব্যবহার করা হয়েছে।


৩. use এর মাধ্যমে Namespace Import

use একটি পুরনো কৌশল যা একটি namespace এর সমস্ত নাম (functions, variables) সরাসরি বর্তমান namespace এ নিয়ে আসে। এর মাধ্যমে আপনি নির্দিষ্ট namespace এর সব ফাংশন বা ভ্যারিয়েবল ব্যবহার করতে পারেন, তবে এটি require এর তুলনায় কিছুটা ঝুঁকিপূর্ণ হতে পারে কারণ এটি namespace থেকে সব কিছুই এনে দেয় এবং এভাবে নাম সংঘর্ষ হতে পারে।

নোট: বর্তমান ক্লোজার সংস্করণে use ব্যবহার করা কমে গেছে এবং require সাধারণত বেশি ব্যবহৃত হয়, কারণ এটি আরো নির্দিষ্ট এবং সুরক্ষিত।

Syntax:

(ns your-namespace
  (:use [namespace-to-import]))

উদাহরণ: use এর মাধ্যমে Namespace Import

(ns my-app.core
  (:use [clojure.string]))

(defn shout [text]
  (upper-case text))

এখানে clojure.string namespace এর সকল ফাংশন সরাসরি ব্যবহার করা হয়েছে, যেমন upper-case ফাংশনটি।


৪. Namespace এর মধ্যে ফাংশন ব্যবহার

একটি namespace তৈরি করার পর, অন্য namespace থেকে ফাংশন বা মান ব্যবহার করা সম্ভব। require বা use এর মাধ্যমে যে namespace ইম্পোর্ট করা হয়, তার ফাংশনগুলো ব্যবহার করা যায়।

উদাহরণ: একাধিক namespace এর ফাংশন ব্যবহার

(ns my-app.core
  (:require [clojure.string :as str]))

(defn greet [name]
  (str/join " " ["Hello" name]))

(defn shout [name]
  (str/upper-case (greet name)))

এখানে, my-app.core namespace তে clojure.string এর join এবং upper-case ফাংশন দুটি ব্যবহার করা হয়েছে।


৫. Namespace ও Aliases

require ব্যবহার করার সময় আপনি ইচ্ছামতো একটি namespace এর জন্য alias দিতে পারেন, যা কোডে ব্যবহার করা আরও সহজ করে তোলে। এটি বড় প্রোজেক্টে নামগুলোর সাথে সংঘর্ষ এড়াতে সাহায্য করে এবং কোডের পাঠযোগ্যতা বাড়ায়।

উদাহরণ: Namespace এর Alias ব্যবহার

(ns my-app.core
  (:require [clojure.string :as str]))

(defn shout [name]
  (str/upper-case (str/join " " ["Hello" name])))

এখানে, clojure.string namespace কে str নামে অ্যালিয়াস দেওয়া হয়েছে, যা কোডকে আরও সংক্ষিপ্ত এবং পরিষ্কার করে তোলে।


সারসংক্ষেপ

ফাংশনবর্ণনা
nsনতুন namespace তৈরি করতে ব্যবহৃত হয়।
requireঅন্য namespace বা লাইব্রেরি থেকে ফাংশন বা মান যোগ করতে ব্যবহৃত হয়।
useএকটি namespace এর সমস্ত নাম বর্তমান namespace এ এনে দেয়। (কম ব্যবহৃত)

ক্লোজারে namespace ব্যবহার করা কোডের সংগঠন এবং স্কেলেবিলিটির জন্য অত্যন্ত গুরুত্বপূর্ণ। require এবং use দিয়ে অন্য namespace থেকে ফাংশন ও মান আমদানি করা যায়, এবং ns দিয়ে নতুন namespace তৈরি করা হয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion